package logica.persistencia;

import org.jdom.Element;

import vista.objetos.GraficableConEtiqueta;
import xml.ConstantesXml;
import xml.XMLManager;

public abstract class  GraficableConEtiquetaPersistente {
	private GraficableConEtiqueta graficableConEtiqueta;
	private Element elementoPadre;
	private Element elementoGraficable;
	
	public GraficableConEtiquetaPersistente(
			GraficableConEtiqueta _graficableConEtiqueta) {
		graficableConEtiqueta = _graficableConEtiqueta;
	}

	public GraficableConEtiqueta getGraficableConEtiqueta() {
		return graficableConEtiqueta;
	}

	public void setGraficableConEtiqueta(GraficableConEtiqueta graficableConEtiqueta) {
		this.graficableConEtiqueta = graficableConEtiqueta;
	}

	public void serializarGenerico(Object objeto, Element elemento) {
		int idInt= XMLManager.getIdentificador(objeto);
		String idString = String.valueOf(idInt);
		elemento.setAttribute(ConstantesXml.ATRIBUTO_ID_OBJETO, idString);
		
		int x =  graficableConEtiqueta.getPunto().x;
		int y = graficableConEtiqueta.getPunto().y;
		elemento.setAttribute(ConstantesXml.ATRIBUTO_X, String.valueOf(x));
		elemento.setAttribute(ConstantesXml.ATRIBUTO_Y, String.valueOf(y));
		
	}
	
	public void hidratarGenerico(Element elemento) {
	
		int x = Integer.valueOf(elemento.getAttributeValue(ConstantesXml.ATRIBUTO_X));
		int y = Integer.valueOf(elemento.getAttributeValue(ConstantesXml.ATRIBUTO_Y)); 
		this.graficableConEtiqueta.getPunto().setLocation(x, y);
	}
	
	public  abstract void serializar();
	public  abstract void hidratar();

	public void setElementoPadre(Element _elementoPadre) {
		elementoPadre = _elementoPadre;
	}
	
	public Element getElementoPadre() {
		return elementoPadre;
	}

	public Element getElementoGraficable() {
		return elementoGraficable;
	}

	public void setElementoGraficable(Element elementoGraficable) {
		this.elementoGraficable = elementoGraficable;
	}

	
	

}

